import logging
import os
import datetime
import sys

# 创建logs目录（如果不存在）
log_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'logs')
if not os.path.exists(log_dir):
    os.makedirs(log_dir)

# 配置日志记录器
def setup_logger():
    # 创建logger
    logger = logging.getLogger('douyin_crawler')
    logger.setLevel(logging.INFO)
    
    # 创建文件处理器，每天分割日志文件，保留7天
    log_file = os.path.join(log_dir, 'douyin_crawler.log')
    
    # 手动实现时间轮转处理，避免导入问题
    try:
        from logging.handlers import TimedRotatingFileHandler
        file_handler = TimedRotatingFileHandler(
            filename=log_file,
            when='midnight',
            interval=1,
            backupCount=7,
            encoding='utf-8'
        )
    except ImportError:
        # 如果无法导入TimedRotatingFileHandler，则使用普通FileHandler
        file_handler = logging.FileHandler(
            filename=log_file,
            encoding='utf-8'
        )
    
    file_handler.setLevel(logging.INFO)
    
    # 创建控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(logging.INFO)
    
    # 创建格式器并添加到处理器
    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
    )
    file_handler.setFormatter(formatter)
    console_handler.setFormatter(formatter)
    
    # 将处理器添加到logger
    logger.addHandler(file_handler)
    logger.addHandler(console_handler)
    
    return logger

# 创建全局logger实例
logger = setup_logger()